package cn.juque.systemservice.api.provider;

import cn.juque.common.base.BaseResponseDTO;
import cn.juque.systemservice.api.dto.dict.*;

import java.util.List;

/**
 * @author JUQUE
 * @version 1.0.0
 * <li>simple-generator</li>
 * <li></li>
 * @date 2022-10-26 17:29:56
 **/
public interface IDictInfoProvider {

    /**
     * 列表检索
     *
     * @param searchDTO 入参
     * @return List
     */
    BaseResponseDTO<List<DictInfoListDTO>> list(DictInfoSearchDTO searchDTO);

    /**
     * 详情
     *
     * @param id 主键
     * @return DictInfoDetailDTO
     */
    BaseResponseDTO<DictInfoDetailDTO> detail(String id);

    /**
     * 新增
     *
     * @param addDTO 入参
     * @return Boolean
     */
    BaseResponseDTO<Boolean> add(DictInfoAddDTO addDTO);

    /**
     * 更新
     *
     * @param updateDTO 入参
     * @return Boolean
     */
    BaseResponseDTO<Boolean> update(DictInfoUpdateDTO updateDTO);

    /**
     * 删除
     *
     * @param deleteDTO 入参
     * @return Boolean
     */
    BaseResponseDTO<Boolean> delete(DictInfoDeleteDTO deleteDTO);

    /**
     * 根据类别检索字典
     *
     * @param req 入参
     * @return resp
     */
    BaseResponseDTO<List<DictInfoDetailDTO>> getDictListByType(DictSearchByTypeDTO req);
}
